{"cells":[{"metadata":{},"cell_type":"markdown","source":"## DM 4 - Première NSI - A rendre le mardi 14 janvier 2025 (Correction) \n\n\n## Question 1\nÉcrire une fonction `trouver_minimum` qui retourne le minimum d'une liste donnée."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Fonction pour trouver le maximum dans une liste\ndef trouver_minimum(liste):\n # A compléter ...\n\n# test\ntrouver_minimum([42, 17, 8, 23, 56, 34, 12, 89, 5, 31])","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Question 2\nUtiliser la fonction `trouver_minimum` pour implémenter la fonction `tri_simple` qui trie en remplissant une nouvelle liste vide à l'aide des instruction `append` et `remove`."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Fonction de tri autre que par insertion et sélection (tri simple avec liste vide et append)\ndef tri_simple(liste):\n \n # A compléter ...\n\n# test\ntri_simple([42, 17, 8, 23, 56, 34, 12, 89, 5, 31])","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Question 3\nÉcrire la fonction de tri par **sélection** et celle de tri par **insertion**."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Tri par sélection\ndef tri_selection(liste):\n \n # A compléter ...\n\n \n# test\ntri_selection([42, 17, 8, 23, 56, 34, 12, 89, 5, 31])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Tri par insertion\ndef tri_insertion(liste):\n \n # A compléter ...\n \n\n# test\ntri_insertion([42, 17, 8, 23, 56, 34, 12, 89, 5, 31])","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Question 4\nÀ partir du dictionnaire suivant :\n\n```python\ndonnees = [\n {\"ville\": \"Paris\", \"superficie\": 105.4, \"habitants\": 2148000},\n {\"ville\": \"Marseille\", \"superficie\": 240.62, \"habitants\": 870018},\n {\"ville\": \"Lyon\", \"superficie\": 47.87, \"habitants\": 522228},\n {\"ville\": \"Toulouse\", \"superficie\": 118.3, \"habitants\": 471941},\n {\"ville\": \"Nice\", \"superficie\": 71.92, \"habitants\": 342669},\n {\"ville\": \"Nantes\", \"superficie\": 65.19, \"habitants\": 303382},\n {\"ville\": \"Strasbourg\", \"superficie\": 78.26, \"habitants\": 280966},\n {\"ville\": \"Montpellier\", \"superficie\": 56.88, \"habitants\": 285121},\n {\"ville\": \"Bordeaux\", \"superficie\": 49.36, \"habitants\": 254436},\n {\"ville\": \"Lille\", \"superficie\": 34.83, \"habitants\": 233897},\n {\"ville\": \"Rennes\", \"superficie\": 50.39, \"habitants\": 217728},\n {\"ville\": \"Reims\", \"superficie\": 46.9, \"habitants\": 184076},\n {\"ville\": \"Le Havre\", \"superficie\": 46.95, \"habitants\": 169733},\n {\"ville\": \"Saint-Étienne\", \"superficie\": 79.97, \"habitants\": 173089},\n {\"ville\": \"Toulon\", \"superficie\": 42.84, \"habitants\": 176198}\n]\n```\nModifier la fonction de tri par sélection en ``tri_selection_dictionnaire`` pour trier la liste ``donnees`` par **ordre alphabétique des villes**."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Modification du tri par sélection pour trier un dictionnaire\ndef tri_selection_dictionnaire(liste):\n \n # A compléter ...\n \n\n\n# Exemple de données\ndonnees = [\n {\"ville\": \"Paris\", \"superficie\": 105.4, \"habitants\": 2148000},\n {\"ville\": \"Marseille\", \"superficie\": 240.62, \"habitants\": 870018},\n {\"ville\": \"Lyon\", \"superficie\": 47.87, \"habitants\": 522228},\n {\"ville\": \"Toulouse\", \"superficie\": 118.3, \"habitants\": 471941},\n {\"ville\": \"Nice\", \"superficie\": 71.92, \"habitants\": 342669},\n {\"ville\": \"Nantes\", \"superficie\": 65.19, \"habitants\": 303382},\n {\"ville\": \"Strasbourg\", \"superficie\": 78.26, \"habitants\": 280966},\n {\"ville\": \"Montpellier\", \"superficie\": 56.88, \"habitants\": 285121},\n {\"ville\": \"Bordeaux\", \"superficie\": 49.36, \"habitants\": 254436},\n {\"ville\": \"Lille\", \"superficie\": 34.83, \"habitants\": 233897},\n {\"ville\": \"Rennes\", \"superficie\": 50.39, \"habitants\": 217728},\n {\"ville\": \"Reims\", \"superficie\": 46.9, \"habitants\": 184076},\n {\"ville\": \"Le Havre\", \"superficie\": 46.95, \"habitants\": 169733},\n {\"ville\": \"Saint-Étienne\", \"superficie\": 79.97, \"habitants\": 173089},\n {\"ville\": \"Toulon\", \"superficie\": 42.84, \"habitants\": 176198}\n]\n\n\n# Test : Tri par ordre alphabétique des villes\ntri_ville = tri_selection_dictionnaire(donnees)\nprint(\"Tri par ordre alphabétique des villes:\", tri_ville)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Question 5\nÀ partir du dictionnaire suivant :\n\n```python\nautres_donnees = [\n {\"ville\": \"Bordeaux\", \"pays\": \"France\", \"code_postal\": 33000},\n {\"ville\": \"Le Havre\", \"pays\": \"France\", \"code_postal\": 76600},\n {\"ville\": \"Lille\", \"pays\": \"France\", \"code_postal\": 59000},\n {\"ville\": \"Lyon\", \"pays\": \"France\", \"code_postal\": 69000},\n {\"ville\": \"Marseille\", \"pays\": \"France\", \"code_postal\": 13000},\n {\"ville\": \"Montpellier\", \"pays\": \"France\", \"code_postal\": 34000},\n {\"ville\": \"Nantes\", \"pays\": \"France\", \"code_postal\": 44000},\n {\"ville\": \"Nice\", \"pays\": \"France\", \"code_postal\": 6000},\n {\"ville\": \"Paris\", \"pays\": \"France\", \"code_postal\": 75000},\n {\"ville\": \"Reims\", \"pays\": \"France\", \"code_postal\": 51100},\n {\"ville\": \"Rennes\", \"pays\": \"France\", \"code_postal\": 35000},\n {\"ville\": \"Saint-Étienne\", \"pays\": \"France\", \"code_postal\": 42000},\n {\"ville\": \"Strasbourg\", \"pays\": \"France\", \"code_postal\": 67000},\n {\"ville\": \"Toulon\", \"pays\": \"France\", \"code_postal\": 83000},\n {\"ville\": \"Toulouse\", \"pays\": \"France\", \"code_postal\": 31000}\n]\n```\n\nRéaliser une jointure entre la liste existante ``donnees`` et la liste ``autres_donnees``, en utilisant la clé commune \"ville\" pour fusionner les informations des deux listes dans une nouvelle liste ?"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Fonction pour joindre deux listes de dictionnaires sur une clé commune\ndef jointer_listes(liste1, liste2):\n \n # A compléter ...\n\n\n# Autres données\nautres_donnees = [\n {\"ville\": \"Bordeaux\", \"pays\": \"France\", \"code_postal\": 33000},\n {\"ville\": \"Le Havre\", \"pays\": \"France\", \"code_postal\": 76600},\n {\"ville\": \"Lille\", \"pays\": \"France\", \"code_postal\": 59000},\n {\"ville\": \"Lyon\", \"pays\": \"France\", \"code_postal\": 69000},\n {\"ville\": \"Marseille\", \"pays\": \"France\", \"code_postal\": 13000},\n {\"ville\": \"Montpellier\", \"pays\": \"France\", \"code_postal\": 34000},\n {\"ville\": \"Nantes\", \"pays\": \"France\", \"code_postal\": 44000},\n {\"ville\": \"Nice\", \"pays\": \"France\", \"code_postal\": 6000},\n {\"ville\": \"Paris\", \"pays\": \"France\", \"code_postal\": 75000},\n {\"ville\": \"Reims\", \"pays\": \"France\", \"code_postal\": 51100},\n {\"ville\": \"Rennes\", \"pays\": \"France\", \"code_postal\": 35000},\n {\"ville\": \"Saint-Étienne\", \"pays\": \"France\", \"code_postal\": 42000},\n {\"ville\": \"Strasbourg\", \"pays\": \"France\", \"code_postal\": 67000},\n {\"ville\": \"Toulon\", \"pays\": \"France\", \"code_postal\": 83000},\n {\"ville\": \"Toulouse\", \"pays\": \"France\", \"code_postal\": 31000}\n]\n\n\n# Test\ndonnees_jointees = jointer_listes(donnees, autres_donnees)\nprint(\"Données jointes :\", donnees_jointees)","execution_count":null,"outputs":[]}],"metadata":{},"nbformat":4,"nbformat_minor":2}